//
//  FFMD5.m
//  FFAirUtilEncrypt
//
//  Created by chewyong on 2017/6/5.
//  Copyright © 2017年 isoftstone. All rights reserved.
//

#import "FFMD5.h"
#import <CommonCrypto/CommonDigest.h>

@implementation FFMD5

/**
 * 对字符串进行MD5加密，返回大写的32位MD5字符串
 * @param str 需要进行MD5加密的原始字符串
 * @return 返回经过MD5加密后的大写32位字符串，如果传入的字符串长度为0，则返回nil
 */
+ (NSString *)MD5ForUpper32Bate:(NSString *)str {
    //检查字符串是否为空
    if ([str length] == 0) {
        return nil;
    }

    //进行UTF8编码
    const char *input = [str UTF8String];
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    //执行MD5加密
    CC_MD5(input, (CC_LONG)strlen(input), result);
    NSMutableString *digest = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    //将加密结果转换为大写的字符串
    for (NSInteger i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
        [digest appendFormat:@"%02X", result[i]];
    }

    return digest;
}

@end
